package com.itheima.common.entity;

import java.io.Serializable;

/**
 * 封装返回结果
 */
public class Result<T> implements Serializable {
    private boolean flag;//执行结果，true为执行成功 false为执行失败
    private String message;//返回结果信息，主要用于页面提示信息
    private Object data;//返回数据

    public Result(boolean flag, String message) {
        super();
        this.flag = flag;
        this.message = message;
    }

    public Result(boolean flag, String message, Object data) {
        this.flag = flag;
        this.message = message;
        this.data = data;
    }

    /**
     * 创建一个表示成功结果的对象
     * 不返回数据
     * @return Result对象，包含成功标志和成功消息
     */
    public static <T> Result<T> success() {
        return new Result<T>(true, "success");
    }

    /**
     * 创建一个表示成功结果对象
     * 返回数据
     * @param data 返回的数据
     * @return Result对象，包含成功标志、成功消息和数据
     */
    public static <T> Result<T> success(Object data) {
        return new Result<T>(true, "success", data);
    }

    /**
     * 创建一个表示失败结果对象
     * 不返回数据
     * @return Result对象，包含失败标志和失败消息
     */
    public static <T> Result<T> error( ) {
        return new Result<T>(false, "error");
    }


    public boolean isFlag() {
        return flag;
    }

    public void setFlag(boolean flag) {
        this.flag = flag;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }
}
